/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.cesupa.cabcc.inicial;

import br.cesupa.cabcc.dao.CargoDAO;
import br.cesupa.cabcc.dao.PerfilDAO;
import br.cesupa.cabcc.dao.UsuarioDAO;
import br.cesupa.cabcc.entity.Cargo;
import br.cesupa.cabcc.entity.Perfil;
import br.cesupa.cabcc.entity.Usuario;
import br.cesupa.cabcc.factory.FactoryDAO;
import br.cesupa.cabcc.util.GeraSenha;

/**
 *
 * @author yuri
 */
public class RodaInicial {

    public static void main(String[] args) {
        cadastraPerfis();
        cadastrarUsuariosComuns();
        cadastrarAdmins();
        cadastrarCargos();
    }

    private static void cadastraPerfis() {
        cadastraPerfil("COMUM");
        cadastraPerfil("ADMINISTRADOR");
    }

    private static void cadastraPerfil(String perfil) {
        Perfil p = new Perfil();
        p.setPerfil(perfil);
        PerfilDAO pDAO = FactoryDAO.getPerfilSUDI();
        pDAO.salvar(p);
    }

    private static void cadastrarAdmins() {
        cadastrarAdmin("admin", "adminadmin", "admin");
    }

    private static void cadastrarAdmin(String login, String senha, String nome) {
        Usuario u = new Usuario();
        u.setLogin(login);
        u.setSenha(GeraSenha.criptografaSenha(senha));
        u.setNome(nome);
        PerfilDAO pDAO = FactoryDAO.getPerfilSUDI();
        Perfil p =pDAO.getByPerfil("ADMINISTRADOR");
        u.setPerfil(p);
        UsuarioDAO uDAO = FactoryDAO.getUsuarioSUDI();
        uDAO.salvar(u);

    }

    private static void cadastrarCargos() {
        cadastrarCargo("Presidente","Representa o Centro Acadêmico, e pode atuar em qualquer cargo.");
        cadastrarCargo("Vice-presidente","Assume o papel do presidente, quando ausente.");
        cadastrarCargo("Diretor Financeiro","Assume com a responsabilidade de administração de recursos (quando se tem) do centro acadêmico e é responsável pelas bolsas rotativas e residuais.");
        cadastrarCargo("Diretor Financeiro 2","Assume o papel de diretor financeiro, quando ausente.");
        cadastrarCargo("Diretor de Integração Estudantil","Assume o papel de integração dos alunos do curso como um todo.");
        cadastrarCargo("Diretor de Integração Estudantil 2","Assume o papel de diretor financeiro, quando ausente.");
        cadastrarCargo("Diretoria de Divulgação","Responsavel pela divulgaçao de todo e qualquer evento do centro acadêmico.");
        cadastrarCargo("Secretária Geral","Responsavel por responsabilidades de secretaria/organização do centro (papeis, documentos, etc).");
        cadastrarCargo("Secretária Geral 2","Assume o papel de secretaria geral, quando ausente.");
        cadastrarCargo("Diretor de assuntos jurídicos estudantis","Responsavel por qustoes juridicas do centro acadêmico.");
        cadastrarCargo("Diretor de Eventos","Responsável pela criação e organização de eventos do centro acadêmico.");

    }

    private static void cadastrarCargo(String nome, String funcao) {
        Cargo c = new Cargo();
        c.setNome(nome);
        c.setFuncao(funcao);
        CargoDAO cDAO = FactoryDAO.getCargoSUDI();
        cDAO.salvar(c);
    }

    private static void cadastrarUsuariosComuns(){
        cadastrarUsuarioComuns("06070085", "06070085", "Yuri Lima Cavalcante");
        cadastrarUsuarioComuns("06070066", "06070066", "Anderson Marques");
    }

    private static void cadastrarUsuarioComuns(String login, String senha, String nome) {
        Usuario u = new Usuario();
        u.setLogin(login);
        u.setSenha(GeraSenha.criptografaSenha(senha));
        u.setNome(nome);
        PerfilDAO pDAO = FactoryDAO.getPerfilSUDI();
        Perfil p =pDAO.getByPerfil("COMUM");
        u.setPerfil(p);
        UsuarioDAO uDAO = FactoryDAO.getUsuarioSUDI();
        uDAO.salvar(u);

    }


}
